package com.jar.exercise.多线程.synchroniz;

import static com.jar.exercise.多线程.synchroniz.Util.sleep;

/**
 *  <div  style="border:2px solid none;margin:20px;padding:15px;font-size:24px;text-align:center;color:aqua;">
 *
 *
 *
 *  </div>
 * @author v_zhangshun01
 * @date 2021/12/7 5:22 下午
 */
public class TestCaseStaticClass {


    /**
     *
     */
    public static void main(String[] args) {


        /*
         * README.md试验 的 004
         *
         * 非阻塞
         */
        Util.newThread(TestCaseStaticClass::m0);
        Util.newThread(TestCaseStaticClass::m1);

        sleep(6000);
        System.out.println("------------分界线1-----------");

        /*
         * README.md试验 的 005
         *
         * 非阻塞
         */
        Util.newThread(TestCaseStaticClass::m0);
        Util.newThread(()->new TestCaseStaticClass().m3());

        sleep(6000);
        System.out.println("------------分界线2-----------");

        /*
         * README.md试验 的 005
         *
         * 非阻塞
         */
        Util.newThread(TestCaseStaticClass::m1);
        Util.newThread(TestCaseStaticClass::m2);

        sleep(6000);
        System.out.println("------------分界线3-----------");

        /*
         * README.md试验 的 005
         *
         * 非阻塞
         */
        Util.newThread(TestCaseStaticClass::m1);
        Util.newThread(()->new TestCaseStaticClass().m3());



    }

    public synchronized static void m0() {

        System.out.println("进入 TestCaseStaticClass m0");

        sleep();

        System.out.println("退出 TestCaseStaticClass m0");

    }





    public static void m1() {

        synchronized (Signal0.class) {

            System.out.println("进入 TestCaseStaticClass m1");

            sleep();

            System.out.println("退出 TestCaseStaticClass m1");
        }


    }


    public static void m2() {

        synchronized (Signal0.class) {

            System.out.println("进入 TestCaseStaticClass m1");

            sleep();

            System.out.println("退出 TestCaseStaticClass m1");
        }


    }


    public void m3() {

        synchronized (Signal0.class) {

            System.out.println("进入 TestCaseStaticClass m1");

            sleep();

            System.out.println("退出 TestCaseStaticClass m1");
        }


    }




}
